home *** CD-ROM | disk | FTP | other *** search
/ Merciful 5 / Merciful - Disc 5.iso / software / r / real_3d / real3dv3.3b.dms / real3dv3.3b.adf / RPL.LZH / RPL / dumpobj.rpl < prev    next >
Text File  |  1995-07-08  |  4KB  |  144 lines

  1. (
  2. ( Recursively scans through the object tree and prints out object attributes
  3.  
  4. 1 CONSTANT DUMPOBJECTS
  5.  
  6. "objects.rpl" LOAD
  7. "locks.rpl" LOAD
  8.  
  9. 300 STRING sBuffer
  10.  
  11. : DmpStr ( sString aFile )
  12.     FETCH FPUTS 0 < IF
  13.         "Cannot write to a file" ERROR
  14.     ENDIF
  15. ;
  16.  
  17. : DmpNL ( aFile )
  18.     10 STRING tmp
  19.  
  20.     "|n" tmp SPRINTF
  21.     tmp SWAP DmpStr
  22. ;
  23.     
  24. : DmpAttr ( iStatus aFile )
  25.     SWAP
  26.     IF
  27.         " X " SWAP DmpStr
  28.     ELSE
  29.         " . " SWAP DmpStr
  30.     ENDIF
  31. ;
  32.  
  33. : DmpObjAttrs
  34.     PARAM 
  35.         VARIABLE iCnt    ( recursion depth
  36.         VARIABLE aFile    
  37.         VARIABLE aObject
  38.     ENDPARAM
  39.     VARIABLE iFlags
  40.     
  41.     ( handle indenting
  42.     iCnt FETCH 0 
  43.     DO
  44.         " " aFile DmpStr
  45.     LOOP
  46.  
  47.     ( name
  48.     aObject FETCH O.sNAME + "%-16s" sBuffer SPRINTF
  49.     sBuffer aFile DmpStr
  50.  
  51.     ( handle indenting
  52.     26 iCnt FETCH - 1 
  53.     DO
  54.         " " aFile DmpStr
  55.     LOOP
  56.  
  57.     "|" aFile DmpStr
  58.     
  59.     ( Boolean OR/AND 
  60.     aObject FETCH O.wTYPE + WFETCH wOT_AND = aFile DmpAttr
  61.  
  62.     ( Object Flags
  63.     aObject FETCH O.iFLAGS + FETCH DUP
  64.  
  65.     lOF_INVERTED   BAND aFile DmpAttr DUP
  66.     lOF_PAINTED    BAND aFile DmpAttr DUP
  67.     lOF_WFINVISIBL BAND aFile DmpAttr DUP
  68.     lOF_RTINVISIBL BAND aFile DmpAttr DUP
  69.     lOF_COLLINV    BAND aFile DmpAttr DUP
  70.     lOF_TEXTURE    BAND aFile DmpAttr DUP
  71.     lOF_PROTECTED  BAND aFile DmpAttr DUP
  72.     lOF_PROTECTL2  BAND aFile DmpAttr DUP
  73.     lOF_MOTION     BAND aFile DmpAttr DUP
  74.     lOF_LIGHTSOURC BAND aFile DmpAttr DUP
  75.     lOF_BBOX       BAND aFile DmpAttr DUP
  76.     lOF_HOLLOW     BAND aFile DmpAttr DUP
  77.     lOF_NOBP1      BAND aFile DmpAttr DUP
  78.     lOF_NOBP2      BAND aFile DmpAttr DUP
  79.     lOF_INFINITE   BAND aFile DmpAttr DUP
  80.     lOF_TRIMCURVE  BAND aFile DmpAttr DUP
  81.     lOF_SCENE      BAND aFile DmpAttr DUP
  82.     lOF_NOTREFL    BAND aFile DmpAttr DUP
  83.     lOF_MATTE      BAND aFile DmpAttr DUP
  84.     lOF_SHADOWLESS BAND aFile DmpAttr DUP
  85.     lOF_BUMPSHADOW BAND aFile DmpAttr
  86.     DROP
  87.     aFile DmpNL 
  88. ;
  89.  
  90. : DmpObj
  91.     PARAM 
  92.         VARIABLE aObj       ( object to be dumped 
  93.         VARIABLE iLevel     ( recursion level for indenting 
  94.         VARIABLE aFile
  95.     ENDPARAM
  96.  
  97.     ( Dump object attributes to a file
  98.     iLevel FETCH aFile FETCH aObj FETCH DmpObjAttrs
  99.  
  100.     ( recursively handle sub objects
  101.     aObj FETCH O_GETSUB
  102.     BEGIN DUP WHILE
  103.         DUP iLevel FETCH 1 + aFile FETCH DmpObj
  104.         O_GETNEXT 
  105.     REPEAT
  106.     DROP
  107. ;
  108.  
  109. : DmpObjects
  110.     PARAM
  111.         VARIABLE aFileName
  112.     ENDPARAM
  113.     VARIABLE aFile
  114.  
  115.     ( Open file 
  116.     aFileName FETCH "w" FOPEN DUP aFile STORE
  117.     NOT IF
  118.         aFileName FETCH "Cannot open file %s" ERROR
  119.     ENDIF
  120.  
  121.     ( Print out header
  122.  
  123.     "------------------------------------------------------------------------------------------------------------" aFile DmpStr aFile DmpNL
  124.     "                                         | Boolean  Invisib  M  Prot  M  L  B   Type    I  T  S  N  M Shadow" aFile DmpStr aFile DmpNL
  125.     "                                         | -------- -------  A  ----  B  I  B  -------  N  R  C  O  A ------" aFile DmpStr aFile DmpNL
  126.     "                                         | A  I  P  W  R  C  P  P  P  L  G  O  H  1  2  F  I  E  R  T  C  B " aFile DmpStr aFile DmpNL
  127.     "                                         | N  N  N  F  T  D  P  1  2  U  H  X  O  B  B  I  M  N  E  T  S  M " aFile DmpStr aFile DmpNL
  128.     " Objects                                 | D  V  T           I        R  T     L  P  P  N  C  E  F  E  T  P " aFile DmpStr aFile DmpNL
  129.     "------------------------------------------------------------------------------------------------------------" aFile DmpStr aFile DmpNL
  130.  
  131.     ( Dump objects
  132.     iLOCK_SHARED O_LOCK
  133.     O_GETROOT 1 aFile FETCH DmpObj
  134.     iLOCK_REMOVE O_LOCK
  135.  
  136.     ( close file
  137.     aFile FETCH FCLOSE
  138. ;
  139.  
  140. "ram:dump.txt" DmpObjects
  141.  
  142. FORGET DUMPOBJECTS
  143.